home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 June / EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso / earcd / c-lang / strmc105.lha / StormC-Demo / INCLUDE / clib / dos_protos.h < prev    next >
C/C++ Source or Header  |  1996-01-02  |  10KB  |  262 lines

  1. #ifndef  CLIB_DOS_PROTOS_H
  2. #define  CLIB_DOS_PROTOS_H
  3.  
  4. /*
  5. **    $VER: dos_protos.h 36.31 (17.12.92)
  6. **    Includes Release 40.15
  7. **
  8. **    C prototypes. For use with 32 bit integers only.
  9. **
  10. **    (C) Copyright 1990-1993 Commodore-Amiga, Inc.
  11. **        All Rights Reserved
  12. */
  13.  
  14. #ifndef  DOS_DOS_H
  15. #include <dos/dos.h>
  16. #endif
  17. #ifndef  DOS_DOSEXTENS_H
  18. #include <dos/dosextens.h>
  19. #endif
  20. #ifndef  DOS_RECORD_H
  21. #include <dos/record.h>
  22. #endif
  23. #ifndef  DOS_RDARGS_H
  24. #include <dos/rdargs.h>
  25. #endif
  26. #ifndef  DOS_DOSASL_H
  27. #include <dos/dosasl.h>
  28. #endif
  29. #ifndef  DOS_VAR_H
  30. #include <dos/var.h>
  31. #endif
  32. #ifndef  DOS_NOTIFY_H
  33. #include <dos/notify.h>
  34. #endif
  35. #ifndef  DOS_DATETIME_H
  36. #include <dos/datetime.h>
  37. #endif
  38.  
  39. #ifdef __cplusplus
  40. extern "C" {
  41. #endif
  42.  
  43. BPTR Open( STRPTR name, long accessMode );
  44. LONG Close( BPTR file );
  45. LONG Read( BPTR file, APTR buffer, long length );
  46. LONG Write( BPTR file, APTR buffer, long length );
  47. BPTR Input( void );
  48. BPTR Output( void );
  49. LONG Seek( BPTR file, long position, long offset );
  50. LONG DeleteFile( STRPTR name );
  51. LONG Rename( STRPTR oldName, STRPTR newName );
  52. BPTR Lock( STRPTR name, long type );
  53. void UnLock( BPTR lock );
  54. BPTR DupLock( BPTR lock );
  55. LONG Examine( BPTR lock, struct FileInfoBlock *fileInfoBlock );
  56. LONG ExNext( BPTR lock, struct FileInfoBlock *fileInfoBlock );
  57. LONG Info( BPTR lock, struct InfoData *parameterBlock );
  58. BPTR CreateDir( STRPTR name );
  59. BPTR CurrentDir( BPTR lock );
  60. LONG IoErr( void );
  61. struct MsgPort *CreateProc( STRPTR name, long pri, BPTR segList,
  62.     long stackSize );
  63. void Exit( long returnCode );
  64. BPTR LoadSeg( STRPTR name );
  65. void UnLoadSeg( BPTR seglist );
  66. struct MsgPort *DeviceProc( STRPTR name );
  67. LONG SetComment( STRPTR name, STRPTR comment );
  68. LONG SetProtection( STRPTR name, long protect );
  69. struct DateStamp *DateStamp( struct DateStamp *date );
  70. void Delay( long timeout );
  71. LONG WaitForChar( BPTR file, long timeout );
  72. BPTR ParentDir( BPTR lock );
  73. LONG IsInteractive( BPTR file );
  74. LONG Execute( STRPTR string, BPTR file, BPTR file2 );
  75. /*--- functions in V36 or higher (Release 2.0) ---*/
  76. /*    DOS Object creation/deletion */
  77. APTR AllocDosObject( unsigned long type, struct TagItem *tags );
  78. APTR AllocDosObjectTagList( unsigned long type, struct TagItem *tags );
  79. APTR AllocDosObjectTags( unsigned long type, unsigned long tag1type, ... );
  80. void FreeDosObject( unsigned long type, APTR ptr );
  81. /*    Packet Level routines */
  82. LONG DoPkt( struct MsgPort *port, long action, long arg1, long arg2, long arg3,
  83.     long arg4, long arg5 );
  84. LONG DoPkt0( struct MsgPort *port, long action );
  85. LONG DoPkt1( struct MsgPort *port, long action, long arg1 );
  86. LONG DoPkt2( struct MsgPort *port, long action, long arg1, long arg2 );
  87. LONG DoPkt3( struct MsgPort *port, long action, long arg1, long arg2,
  88.     long arg3 );
  89. LONG DoPkt4( struct MsgPort *port, long action, long arg1, long arg2,
  90.     long arg3, long arg4 );
  91. void SendPkt( struct DosPacket *dp, struct MsgPort *port,
  92.     struct MsgPort *replyport );
  93. struct DosPacket *WaitPkt( void );
  94. void ReplyPkt( struct DosPacket *dp, long res1, long res2 );
  95. void AbortPkt( struct MsgPort *port, struct DosPacket *pkt );
  96. /*    Record Locking */
  97. BOOL LockRecord( BPTR fh, unsigned long offset, unsigned long length,
  98.     unsigned long mode, unsigned long timeout );
  99. BOOL LockRecords( struct RecordLock *recArray, unsigned long timeout );
  100. BOOL UnLockRecord( BPTR fh, unsigned long offset, unsigned long length );
  101. BOOL UnLockRecords( struct RecordLock *recArray );
  102. /*    Buffered File I/O */
  103. BPTR SelectInput( BPTR fh );
  104. BPTR SelectOutput( BPTR fh );
  105. LONG FGetC( BPTR fh );
  106. LONG FPutC( BPTR fh, long ch );
  107. LONG UnGetC( BPTR fh, long character );
  108. LONG FRead( BPTR fh, APTR block, unsigned long blocklen,
  109.     unsigned long number );
  110. LONG FWrite( BPTR fh, APTR block, unsigned long blocklen,
  111.     unsigned long number );
  112. STRPTR FGets( BPTR fh, STRPTR buf, unsigned long buflen );
  113. LONG FPuts( BPTR fh, STRPTR str );
  114. void VFWritef( BPTR fh, STRPTR format, LONG *argarray );
  115. void FWritef( BPTR fh, STRPTR format, ... );
  116. LONG VFPrintf( BPTR fh, STRPTR format, APTR argarray );
  117. LONG FPrintf( BPTR fh, STRPTR format, ... );
  118. LONG Flush( BPTR fh );
  119. LONG SetVBuf( BPTR fh, STRPTR buff, long type, long size );
  120. /*    DOS Object Management */
  121. BPTR DupLockFromFH( BPTR fh );
  122. BPTR OpenFromLock( BPTR lock );
  123. BPTR ParentOfFH( BPTR fh );
  124. BOOL ExamineFH( BPTR fh, struct FileInfoBlock *fib );
  125. LONG SetFileDate( STRPTR name, struct DateStamp *date );
  126. LONG NameFromLock( BPTR lock, STRPTR buffer, long len );
  127. LONG NameFromFH( BPTR fh, STRPTR buffer, long len );
  128. WORD SplitName( STRPTR name, unsigned long seperator, STRPTR buf, long oldpos,
  129.     long size );
  130. LONG SameLock( BPTR lock1, BPTR lock2 );
  131. LONG SetMode( BPTR fh, long mode );
  132. LONG ExAll( BPTR lock, struct ExAllData *buffer, long size, long data,
  133.     struct ExAllControl *control );
  134. LONG ReadLink( struct MsgPort *port, BPTR lock, STRPTR path, STRPTR buffer,
  135.     unsigned long size );
  136. LONG MakeLink( STRPTR name, long dest, long soft );
  137. LONG ChangeMode( long type, BPTR fh, long newmode );
  138. LONG SetFileSize( BPTR fh, long pos, long mode );
  139. /*    Error Handling */
  140. LONG SetIoErr( long result );
  141. BOOL Fault( long code, STRPTR header, STRPTR buffer, long len );
  142. BOOL PrintFault( long code, STRPTR header );
  143. LONG ErrorReport( long code, long type, unsigned long arg1,
  144.     struct MsgPort *device );
  145. /*    Process Management */
  146. struct CommandLineInterface *Cli( void );
  147. struct Process *CreateNewProc( struct TagItem *tags );
  148. struct Process *CreateNewProcTagList( struct TagItem *tags );
  149. struct Process *CreateNewProcTags( unsigned long tag1type, ... );
  150. LONG RunCommand( BPTR seg, long stack, STRPTR paramptr, long paramlen );
  151. struct MsgPort *GetConsoleTask( void );
  152. struct MsgPort *SetConsoleTask( struct MsgPort *task );
  153. struct MsgPort *GetFileSysTask( void );
  154. struct MsgPort *SetFileSysTask( struct MsgPort *task );
  155. STRPTR GetArgStr( void );
  156. BOOL SetArgStr( STRPTR string );
  157. struct Process *FindCliProc( unsigned long num );
  158. ULONG MaxCli( void );
  159. BOOL SetCurrentDirName( STRPTR name );
  160. BOOL GetCurrentDirName( STRPTR buf, long len );
  161. BOOL SetProgramName( STRPTR name );
  162. BOOL GetProgramName( STRPTR buf, long len );
  163. BOOL SetPrompt( STRPTR name );
  164. BOOL GetPrompt( STRPTR buf, long len );
  165. BPTR SetProgramDir( BPTR lock );
  166. BPTR GetProgramDir( void );
  167. /*    Device List Management */
  168. LONG SystemTagList( STRPTR command, struct TagItem *tags );
  169. LONG System( STRPTR command, struct TagItem *tags );
  170. LONG SystemTags( STRPTR command, unsigned long tag1type, ... );
  171. LONG AssignLock( STRPTR name, BPTR lock );
  172. BOOL AssignLate( STRPTR name, STRPTR path );
  173. BOOL AssignPath( STRPTR name, STRPTR path );
  174. BOOL AssignAdd( STRPTR name, BPTR lock );
  175. LONG RemAssignList( STRPTR name, BPTR lock );
  176. struct DevProc *GetDeviceProc( STRPTR name, struct DevProc *dp );
  177. void FreeDeviceProc( struct DevProc *dp );
  178. struct DosList *LockDosList( unsigned long flags );
  179. void UnLockDosList( unsigned long flags );
  180. struct DosList *AttemptLockDosList( unsigned long flags );
  181. BOOL RemDosEntry( struct DosList *dlist );
  182. LONG AddDosEntry( struct DosList *dlist );
  183. struct DosList *FindDosEntry( struct DosList *dlist, STRPTR name,
  184.     unsigned long flags );
  185. struct DosList *NextDosEntry( struct DosList *dlist, unsigned long flags );
  186. struct DosList *MakeDosEntry( STRPTR name, long type );
  187. void FreeDosEntry( struct DosList *dlist );
  188. BOOL IsFileSystem( STRPTR name );
  189. /*    Handler Interface */
  190. BOOL Format( STRPTR filesystem, STRPTR volumename, unsigned long dostype );
  191. LONG Relabel( STRPTR drive, STRPTR newname );
  192. LONG Inhibit( STRPTR name, long onoff );
  193. LONG AddBuffers( STRPTR name, long number );
  194. /*    Date, Time Routines */
  195. LONG CompareDates( struct DateStamp *date1, struct DateStamp *date2 );
  196. LONG DateToStr( struct DateTime *datetime );
  197. LONG StrToDate( struct DateTime *datetime );
  198. /*    Image Management */
  199. BPTR InternalLoadSeg( BPTR fh, BPTR table, LONG *funcarray, LONG *stack );
  200. BOOL InternalUnLoadSeg( BPTR seglist, void (*freefunc)() );
  201. BPTR NewLoadSeg( STRPTR file, struct TagItem *tags );
  202. BPTR NewLoadSegTagList( STRPTR file, struct TagItem *tags );
  203. BPTR NewLoadSegTags( STRPTR file, unsigned long tag1type, ... );
  204. LONG AddSegment( STRPTR name, BPTR seg, long system );
  205. struct Segment *FindSegment( STRPTR name, struct Segment *seg, long system );
  206. LONG RemSegment( struct Segment *seg );
  207. /*    Command Support */
  208. LONG CheckSignal( long mask );
  209. struct RDArgs *ReadArgs( STRPTR arg_template, LONG *array,
  210.     struct RDArgs *args );
  211. LONG FindArg( STRPTR keyword, STRPTR arg_template );
  212. LONG ReadItem( STRPTR name, long maxchars, struct CSource *cSource );
  213. LONG StrToLong( STRPTR string, LONG *value );
  214. LONG MatchFirst( STRPTR pat, struct AnchorPath *anchor );
  215. LONG MatchNext( struct AnchorPath *anchor );
  216. void MatchEnd( struct AnchorPath *anchor );
  217. LONG ParsePattern( STRPTR pat, STRPTR buf, long buflen );
  218. BOOL MatchPattern( STRPTR pat, STRPTR str );
  219. void FreeArgs( struct RDArgs *args );
  220. STRPTR FilePart( STRPTR path );
  221. STRPTR PathPart( STRPTR path );
  222. BOOL AddPart( STRPTR dirname, STRPTR filename, unsigned long size );
  223. /*    Notification */
  224. BOOL StartNotify( struct NotifyRequest *notify );
  225. void EndNotify( struct NotifyRequest *notify );
  226. /*    Environment Variable functions */
  227. BOOL SetVar( STRPTR name, STRPTR buffer, long size, long flags );
  228. LONG GetVar( STRPTR name, STRPTR buffer, long size, long flags );
  229. LONG DeleteVar( STRPTR name, unsigned long flags );
  230. struct LocalVar *FindVar( STRPTR name, unsigned long type );
  231. LONG CliInitNewcli( struct DosPacket *dp );
  232. LONG CliInitRun( struct DosPacket *dp );
  233. LONG WriteChars( STRPTR buf, unsigned long buflen );
  234. LONG PutStr( STRPTR str );
  235. LONG VPrintf( STRPTR format, APTR argarray );
  236. LONG Printf( STRPTR format, ... );
  237. /* these were unimplemented until dos 36.147 */
  238. LONG ParsePatternNoCase( STRPTR pat, STRPTR buf, long buflen );
  239. BOOL MatchPatternNoCase( STRPTR pat, STRPTR str );
  240. /* this was added for V37 dos, returned 0 before then. */
  241. BOOL SameDevice( BPTR lock1, BPTR lock2 );
  242.  
  243. /* NOTE: the following entries did NOT exist before ks 36.303 (2.02) */
  244. /* If you are going to use them, open dos.library with version 37 */
  245.  
  246. /* These calls were added for V39 dos: */
  247. void ExAllEnd( BPTR lock, struct ExAllData *buffer, long size, long data,
  248.     struct ExAllControl *control );
  249. BOOL SetOwner( STRPTR name, long owner_info );
  250.  
  251. #ifdef __cplusplus
  252. }
  253. #endif
  254.  
  255. #ifdef STORMPRAGMAS
  256. #ifndef _INCLUDE_PRAGMA_DOS_LIB_H
  257. #include <pragma/dos_lib.h>
  258. #endif
  259. #endif
  260.  
  261. #endif     /* CLIB_DOS_PROTOS_H */
  262.